Google Cloud Service Accounts
サービス アカウント  |  IAM のドキュメント  |  Google Cloud
サービス アカウントは、ユーザーではなく、.....で使用される特別なアカウントです。
アプリケーションはサービス アカウントを使用して、承認された API 呼び出しを行います。
サービス アカウント自体として承認されるか or ドメイン全体の委任により Google Workspace または Cloud Idetity ユーザーとして承認
ドメイン全体の委任。 そのドメイン(組織)のユーザーの権限でサービスをリクエストする強力機能
API アクセスをドメイン全体の委任で制御する - Google Workspace 管理者 ヘルプ
また、逆?で、ユーザーがサービスアカウントになりすましをして、リクエストするものもある。
サービス アカウントの権限借用の管理  |  IAM のドキュメント  |  Google Cloud
まだ、把握してる感じがない...
Google Cloudの運用でGCP IAMでのprincipleの1つ。
プログラムやアプリが実行主体(principal)となる場合に使うアカウント
gcloud, CLIでの認証は通常は、defaultのユーザーアカウントだが、
gcloud auth activate-service-account abc@yz.com --key-file=dsfs.json みたいにしても使える
Google Cloud ComputeEngineや app engineなどでは、デフォルトのservice accountが用意されてる。
このサービスアカウントは、何のroleをもってるのか?
gcloud iam service-account get-iam-policy MY_SERVICE_ACCOUNT は、
get-iam-policyもあるけど....etagの値しかでない?
gcloud projects get-iam-policy ${PROJECT_ID} --flatten="bindings[].members" --format="table(bindings.role)" --fitter="bindings.members:${SERVICE_ACCOUNT}
google cloud platform - How do I list the roles associated with a gcp service account? - Stack Overflow
roleが何のpermissionをもってるのか? Google Cloud IAM Roles
サービスアカウントには、タイプがある
備忘録 Google Cloudサービスアカウントの種類と見分け方
ユーザー管理
デフォルトサービスアカウント
サービスエージェント(強いやつ?)
Google API サービスエージェント
service-agent-manager@system.gserviceaccount.com
それぞれのサービスのエージェント
Service agents  |  IAM Documentation  |  Google Cloud
Google管理のもの
{project-number}@cloudbuild.gserviceaccount.comなど
こういう説明はなかなか無いので、参考になった。
上記のなりすましの話
これも別途: roles/iam.serviceAccountTokenCreator
キーの管理
Google Cloud Platform Japan 公式ブログ: Google Cloud のサービス アカウント キーを安全に管理する
参考:
GCP で Service Account 作って CI サービスに登録する - Qiita
base64でencodeして、環境変数にいれて、使うときにdecodeしてるフローが参考になった。
上記の管理のリンクもこの記事からリンクして読んだ。
@2022 ただ、最近は?CIサービスは、secretを扱う機能があるので、それを使うのだろう。